Setup

knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
library(tidyverse)     # for data cleaning and plotting
library(lubridate)     # for date manipulation
library(palmerpenguins)# for Palmer penguin data

Introdução

Imagine que você precisa atribuir notas aos estudantes de uma disciplina que você ministre aulas. Ou seja, precisamos criar uma estrutura de dados (notas dos discentes) na qual possamos saber se a pessoa foi aprovada, se deve fazer a prova de recuperação, ou se foi reprovada.

if e else e else if

# considerando a nota que a pessoa tirou
nota <- 4.5

# E sabendo que a nota minima para aprovação deve ser 5, temos:
if(nota >= 5) {
  print("Aprovação")
} else if (nota >= 3 & nota < 5) {  # se a nota for maior ou igual a 5, mas menor que 5,
                                    # ela deverá fazer a prova de recuperação
  print("Exame de recuperação")
} else {
  print("Reprovação")
} # se nenhum dos casos anteriores for verdadeiro,
## [1] "Exame de recuperação"
  # ou seja, a nota for menor que 3,
  # a pessoa será reprovada

Função range()

Função de range é uma funcao de intervalo no R. Ela retorna um vetor contendo o mínimo e o máximo de todos os argumentos fornecidos.

#  Forma de uso: seq(inicio, fim, passo)

seq(4, 10, 2)
## [1]  4  6  8 10

Algo que devemos tomar cuidado é que podemos usar apenas um argumento, que será usado para definir o tamanho da sequência de números. Neste caso, a função usará como valores padrões para os argumentos de passo (sendo 1). Veja o exemplo:

# se você usar apenas com um argumento
seq(4)
## [1] 1 2 3 4

Função case_when()

Vamos entender como funciona essa função. Tomemos o exemplo abaixo:

tabela_notas <- babynames::babynames %>% 
 dplyr::filter(year == 2017) %>% 
  dplyr::arrange(desc(n)) %>% 
  dplyr::slice(1:10) %>% 
  dplyr::select(name, sex) %>% 
  dplyr::mutate(nota = seq(0, 9, 1))

reactable::reactable(tabela_notas)

Agora precisamos configurar a função:

tabela_notas %>% 
  dplyr::mutate(
    resultado = dplyr::case_when(nota >= 5 ~ "Aprovação",
                                 nota >= 3 & nota < 5 ~ "Exame de recuperação",
                                 TRUE ~ "Reprovação" )) %>% 
  reactable::reactable()

Botando a mão na massa

Usando os dados da tabela_notas_sexo crie uma coluna chamada “genero” que receba, “masculino” e “feminino”.

tabela_notas_sexo <- babynames::babynames %>% 
 dplyr::filter(year == 2017) %>% 
  dplyr::arrange(desc(n)) %>% 
  dplyr::slice(1:10) %>% 
  dplyr::select(name, sex)
  • Resposta:
dados <- Ibamam::ibge_code

dados_uf <- sample(dados$abrev_state, replace = T) %>% 
             as_tibble()

# https://www.todamateria.com.br/siglas-estados-brasileiros/
  • Crie uma nova variavel chamada regiao, e que conste o nome das regiões brasileiras para os estados do Norte.
LS0tDQp0aXRsZTogIkF1bGEgNyAtIEVzdHJ1dHVyYXMgZGUgY29udHJvbGUgY29uZGljaW9uYWlzIg0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICB0b2NfZmxvYXQ6IHRydWUNCiAgICBkZl9wcmludDogcGFnZWQNCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQotLS0NCg0KIyBTZXR1cA0KDQpgYGB7ciBzZXR1cH0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSwgbWVzc2FnZSA9IEZBTFNFLCB3YXJuaW5nID0gRkFMU0UpDQpgYGANCg0KYGBge3IgbGlicmFyaWVzfQ0KbGlicmFyeSh0aWR5dmVyc2UpICAgICAjIGZvciBkYXRhIGNsZWFuaW5nIGFuZCBwbG90dGluZw0KbGlicmFyeShsdWJyaWRhdGUpICAgICAjIGZvciBkYXRlIG1hbmlwdWxhdGlvbg0KbGlicmFyeShwYWxtZXJwZW5ndWlucykjIGZvciBQYWxtZXIgcGVuZ3VpbiBkYXRhDQpgYGANCg0KIyBJbnRyb2R1w6fDo28NCg0KSW1hZ2luZSBxdWUgdm9jw6ogcHJlY2lzYSBhdHJpYnVpciBub3RhcyBhb3MgZXN0dWRhbnRlcyBkZSB1bWEgZGlzY2lwbGluYSBxdWUgdm9jw6ogbWluaXN0cmUgYXVsYXMuIE91IHNlamEsIHByZWNpc2Ftb3MgY3JpYXIgdW1hIGVzdHJ1dHVyYSBkZSBkYWRvcyAobm90YXMgZG9zIGRpc2NlbnRlcykgbmEgcXVhbCBwb3NzYW1vcyBzYWJlciBzZSBhIHBlc3NvYSBmb2kgKmFwcm92YWRhKiwgc2UgZGV2ZSBmYXplciBhICpwcm92YSBkZSByZWN1cGVyYcOnw6NvKiwgb3Ugc2UgZm9pICpyZXByb3ZhZGEqLiANCg0KIyBgaWZgIGUgYGVsc2VgIGUgYGVsc2UgaWZgDQoNCmBgYHtyfQ0KIyBjb25zaWRlcmFuZG8gYSBub3RhIHF1ZSBhIHBlc3NvYSB0aXJvdQ0Kbm90YSA8LSA0LjUNCg0KIyBFIHNhYmVuZG8gcXVlIGEgbm90YSBtaW5pbWEgcGFyYSBhcHJvdmHDp8OjbyBkZXZlIHNlciA1LCB0ZW1vczoNCmlmKG5vdGEgPj0gNSkgew0KICBwcmludCgiQXByb3Zhw6fDo28iKQ0KfSBlbHNlIGlmIChub3RhID49IDMgJiBub3RhIDwgNSkgeyAgIyBzZSBhIG5vdGEgZm9yIG1haW9yIG91IGlndWFsIGEgNSwgbWFzIG1lbm9yIHF1ZSA1LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBlbGEgZGV2ZXLDoSBmYXplciBhIHByb3ZhIGRlIHJlY3VwZXJhw6fDo28NCiAgcHJpbnQoIkV4YW1lIGRlIHJlY3VwZXJhw6fDo28iKQ0KfSBlbHNlIHsNCiAgcHJpbnQoIlJlcHJvdmHDp8OjbyIpDQp9ICMgc2UgbmVuaHVtIGRvcyBjYXNvcyBhbnRlcmlvcmVzIGZvciB2ZXJkYWRlaXJvLA0KICAjIG91IHNlamEsIGEgbm90YSBmb3IgbWVub3IgcXVlIDMsDQogICMgYSBwZXNzb2Egc2Vyw6EgcmVwcm92YWRhDQpgYGANCg0KIyBGdW7Dp8OjbyBgcmFuZ2UoKWANCg0KRnVuw6fDo28gZGUgcmFuZ2Ugw6kgdW1hIGZ1bmNhbyBkZSBpbnRlcnZhbG8gbm8gUi4gRWxhIHJldG9ybmEgdW0gdmV0b3IgY29udGVuZG8gbyBgbcOtbmltb2AgZSBvIGBtw6F4aW1vYCBkZSB0b2RvcyBvcyBhcmd1bWVudG9zIGZvcm5lY2lkb3MuDQoNCmBgYHtyfQ0KIyAgRm9ybWEgZGUgdXNvOiBzZXEoaW5pY2lvLCBmaW0sIHBhc3NvKQ0KDQpzZXEoNCwgMTAsIDIpDQpgYGANCg0KQWxnbyBxdWUgZGV2ZW1vcyB0b21hciBjdWlkYWRvIMOpIHF1ZSBwb2RlbW9zIHVzYXIgYXBlbmFzIHVtIGFyZ3VtZW50bywgcXVlIHNlcsOhIHVzYWRvIHBhcmEgZGVmaW5pciBvIHRhbWFuaG8gZGEgc2VxdcOqbmNpYSBkZSBuw7ptZXJvcy4gTmVzdGUgY2FzbywgYSBmdW7Dp8OjbyB1c2Fyw6EgY29tbyB2YWxvcmVzIHBhZHLDtWVzIHBhcmEgb3MgYXJndW1lbnRvcyBkZSBwYXNzbyAoc2VuZG8gMSkuIFZlamEgbyBleGVtcGxvOg0KDQpgYGB7cn0NCiMgc2Ugdm9jw6ogdXNhciBhcGVuYXMgY29tIHVtIGFyZ3VtZW50bw0Kc2VxKDQpDQpgYGANCg0KIyMgRnVuw6fDo28gYGNhc2Vfd2hlbigpYCANCg0KIVtdKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGxpc29uaG9yc3Qvc3RhdHMtaWxsdXN0cmF0aW9ucy9yYXcvbWFzdGVyL3JzdGF0cy1hcnR3b3JrL2RwbHlyX2Nhc2Vfd2hlbi5wbmcpDQoNClZhbW9zIGVudGVuZGVyIGNvbW8gZnVuY2lvbmEgZXNzYSBmdW7Dp8Ojby4gVG9tZW1vcyBvIGV4ZW1wbG8gYWJhaXhvOg0KDQpgYGB7cn0NCnRhYmVsYV9ub3RhcyA8LSBiYWJ5bmFtZXM6OmJhYnluYW1lcyAlPiUgDQogZHBseXI6OmZpbHRlcih5ZWFyID09IDIwMTcpICU+JSANCiAgZHBseXI6OmFycmFuZ2UoZGVzYyhuKSkgJT4lIA0KICBkcGx5cjo6c2xpY2UoMToxMCkgJT4lIA0KICBkcGx5cjo6c2VsZWN0KG5hbWUsIHNleCkgJT4lIA0KICBkcGx5cjo6bXV0YXRlKG5vdGEgPSBzZXEoMCwgOSwgMSkpDQoNCnJlYWN0YWJsZTo6cmVhY3RhYmxlKHRhYmVsYV9ub3RhcykNCmBgYA0KDQpBZ29yYSBwcmVjaXNhbW9zIGNvbmZpZ3VyYXIgYSBmdW7Dp8OjbzoNCg0KYGBge3J9DQp0YWJlbGFfbm90YXMgJT4lIA0KICBkcGx5cjo6bXV0YXRlKA0KICAgIHJlc3VsdGFkbyA9IGRwbHlyOjpjYXNlX3doZW4obm90YSA+PSA1IH4gIkFwcm92YcOnw6NvIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGEgPj0gMyAmIG5vdGEgPCA1IH4gIkV4YW1lIGRlIHJlY3VwZXJhw6fDo28iLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSB+ICJSZXByb3Zhw6fDo28iICkpICU+JSANCiAgcmVhY3RhYmxlOjpyZWFjdGFibGUoKQ0KYGBgDQoNCg0KIyBCb3RhbmRvIGEgbcOjbyBuYSBtYXNzYQ0KDQpVc2FuZG8gb3MgZGFkb3MgZGEgYHRhYmVsYV9ub3Rhc19zZXhvYCBjcmllIHVtYSBjb2x1bmEgY2hhbWFkYSAiZ2VuZXJvIiBxdWUgcmVjZWJhLCAibWFzY3VsaW5vIiBlICJmZW1pbmlubyIuDQpgYGB7cn0NCnRhYmVsYV9ub3Rhc19zZXhvIDwtIGJhYnluYW1lczo6YmFieW5hbWVzICU+JSANCiBkcGx5cjo6ZmlsdGVyKHllYXIgPT0gMjAxNykgJT4lIA0KICBkcGx5cjo6YXJyYW5nZShkZXNjKG4pKSAlPiUgDQogIGRwbHlyOjpzbGljZSgxOjEwKSAlPiUgDQogIGRwbHlyOjpzZWxlY3QobmFtZSwgc2V4KQ0KDQpgYGANCiAgLSBSZXNwb3N0YToNCmBgYHtyIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9DQp0YWJlbGFfbm90YXNfc2V4byAlPiUgDQogIGRwbHlyOjptdXRhdGUoZ2VuZXJvID0gZHBseXI6OmNhc2Vfd2hlbihzZXggPT0gIkYiIH4gImZlbWluaW5vIiwgVFJVRSB+ICJtYXNjdWxpbm8iKSkNCmBgYA0KDQoNCmBgYHtyfQ0KZGFkb3MgPC0gSWJhbWFtOjppYmdlX2NvZGUNCg0KZGFkb3NfdWYgPC0gc2FtcGxlKGRhZG9zJGFicmV2X3N0YXRlLCByZXBsYWNlID0gVCkgJT4lIA0KICAgICAgICAgICAgIGFzX3RpYmJsZSgpDQoNCiMgaHR0cHM6Ly93d3cudG9kYW1hdGVyaWEuY29tLmJyL3NpZ2xhcy1lc3RhZG9zLWJyYXNpbGVpcm9zLw0KYGBgDQoNCg0KLSBDcmllIHVtYSBub3ZhIHZhcmlhdmVsIGNoYW1hZGEgYHJlZ2lhb2AsIGUgcXVlIGNvbnN0ZSBvIG5vbWUgZGFzIHJlZ2nDtWVzIGJyYXNpbGVpcmFzIHBhcmEgb3MgZXN0YWRvcyBkbyBOb3J0ZS4NCg0KYGBge3IgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCiMgY2xhc3NpZmljYW5kbyBlc3RhZG9zIGRvICJOb3J0ZSIgIA0KZGFkb3Nfbm9ydGUgPC0gZGFkb3NfdWYgJT4lIA0KICAgICAgICAgbXV0YXRlKHJlZ2lhbyA9IGNhc2Vfd2hlbih2YWx1ZSAgJWluJSBjKCJBQyIsICJBUCIsICJBTSIsICJQQSIsICJSTyIsICJSUiIsICJUTyIpIH4gIk5vcnRlIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiAiT3V0cm9zIikpICU+JSBWaWV3KCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgDQojIGNsYXNzaWZpY2FuZG8gdG9kb3Mgb3MgZXN0YWRvcw0KZGFkb3NfdWYgPC0gZGFkb3NfdWYgJT4lIA0KICAgICBtdXRhdGUocmVnaWFvID0gY2FzZV93aGVuKHZhbHVlICVpbiUgYygiQUMiLCAiQVAiLCAiQU0iLCAiUEEiLCAiUk8iLCAiUlIiLCAiVE8iKSB+ICJOb3J0ZSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgJWluJSBjKCJBTCIsICJCQSIsICJDRSIsICJNQSIsICJQQiIsICJQRSIsICJQSSIsICJSTiIsICJTRSIpIH4gIk5vcmRlc3RlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSAlaW4lIGMoIkRGIiwgIkdPIiwgIk1UIiwgIk1TIiwgIlBCIikgfiAiQ2VudHJvLU9lc3RlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSAlaW4lIGMoIlNQIiwgIlJKIiwgIk1HIiwgIkVTIiwgIlBCIikgfiAiU3VkZXN0ZSIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiAiU3VsIikNCiAgICAgICAgICAgICkNCg0KDQoNCmBgYA0KDQo=